define(function(require, exports, module){
	
	//	获取可使用红包个数和红包占比投资金额比例
    $.ajax({
    	url:'/redEnvelope/initUseable.html?randomTime=' + (new Date()).getTime(),
    	type:'post',
    	dataType:'json',
    	success:function(data){
    		$("#redPackageRate").val(data.tenderRedpackageRate);
    		$(".redPackageRate").text(data.tenderRedpackageRate*100);
    		if(data.rdEnvelopeCount == 0){
    			$(".choiceRedPacket").addClass("hide");
    			$(".choiceRedPacket").after("<span>当前没有可使用红包</span>");
    		}
    	}
    });
	
    var redPacketsRule = $("#redPacketsRule").val();
	var redPacketsRuleArr = redPacketsRule.split(",");
	var reduseRange = [];
	  for(var i=0;i<redPacketsRuleArr.length;i++){
		  var arr = redPacketsRuleArr[i].split("^");
		  reduseRange.push({});
		  reduseRange[i].min = parseFloat(arr[0]);
		  reduseRange[i].max = parseFloat(arr[1]);
		  reduseRange[i].red = parseFloat(arr[2]);
	  }
	
    //***1：选择红包功能
    var 
	$checkAllRedPacket = $('.checkAllRedPacket input[type="checkbox"]'),			// 红包全选按钮节点
	$choiceRedPacketBtn = $('.choiceRedPacketBox ul li'),
	$choiceRedPacketInput = $('.choiceRedPacketBox ul li input[type="checkbox"]'),	// 单个红包选择框节点
	$redPacketMoney = $('.redPacketMoney'),											// 单个红包金额节点,弹框显示

	$redPacketConfirm =$("#redPacketConfirm"),										// 	点击确认,弹框显示
	actualPayment = $("#money").val(),												//	实际支付总额
    currentCheckedMoney = 0,  														// 	选中红包总额     数值型应先赋值为0，表明为数值    
    money = $money.val(),															//	输入投资金额
    redPackageRate = $("#redPackageRate").val(),//红包使用比例
	canUseRedMoney =  money*parseFloat(redPackageRate),				//	可用红包总额
	lowestAmount = $("#lowestAccount").text(),//最小投标金额
	mostAmount = $("#mostAccount").text(),//最大投标金额
	accountWait = $("#accountWait").text(),//剩余可投金额
    dataChecked = [];//	可用红包总额  模拟值
    var $form_mony_tip = $(".form_mony_tip");			// 提示语
    //	选择红包弹窗
    $choiceRedPacket.on("click",function(){
    	
      if($money.val()!=''){
    	 
    	  if($money.val() < parseInt(lowestAmount) && parseInt(accountWait) > parseInt(lowestAmount)){
    		  $(".form_mony_tip").removeClass("hide").html('<b class="iconfont">&#xe60f;</b>投标金额不能小于最小投标金额<a href="javascript:;" id="invest_all">'+lowestAmount+'</a>元！');
    		  $("#invest_all").click(function(){
                  $money.val(lowestAmount);
                  $form_mony_tip.addClass("hide");  
                  $finalActualPayment.html("实际支付：<em>"+$money.val()+"</em>元");
            	  $finalInvestMoney.html("实际投资：<em>"+$money.val()+"</em>元");
              });
          }else if($money.val() < parseInt(accountWait) && parseInt(accountWait) < parseInt(lowestAmount)){
        	  $(".form_mony_tip").removeClass("hide").html('<b class="iconfont">&#xe60f;</b>请填入全部剩余<a href="javascript:;" id="invest_all">可投金额</a>！');
        	  $("#invest_all").click(function(){
                  $money.val(accountWait);
                  $form_mony_tip.addClass("hide");  
                  $finalActualPayment.html("实际支付：<em>"+$money.val()+"</em>元");
            	  $finalInvestMoney.html("实际投资：<em>"+$money.val()+"</em>元");
              });
          }else if($money.val() > parseInt(accountWait)){
        	  $(".form_mony_tip").removeClass("hide").html('<b class="iconfont">&#xe60f;</b>投标金额不能大于剩余可投金额<a href="javascript:;" id="invest_all">'+accountWait+'</a>元！');
        	  $("#invest_all").click(function(){
                  $money.val(accountWait);
                  $form_mony_tip.addClass("hide");  
                  $finalActualPayment.html("实际支付：<em>"+$money.val()+"</em>元");
            	  $finalInvestMoney.html("实际投资：<em>"+$money.val()+"</em>元");
              });
          }else{
        	  $.ajax({
                  url: '/redEnvelope/useable.html?randomTime=' + (new Date()).getTime(),
                  type: 'get',
                  dataType: 'json',
                  cache:false,
                  success:function(json){
            		  money = $money.val();
            		  
            		                		  
            		  var bigUserMoney = 0;
            		  for(var i=0;i<reduseRange.length;i++){
            			  if(money>reduseRange[i].min&&money<=reduseRange[i].max){
            				  bigUserMoney = reduseRange[i].red;
            				  break;
            			  }else if(i==(reduseRange.length-1)&&money>reduseRange[i].max){
            				  bigUserMoney = reduseRange[i].red;
            			  }
            		  }
            		  for(var i=0,length=json.rows.length;i<length;i++){
        				  if(json.rows[i].amount>bigUserMoney){
        					  json.rows[i].useFlag = 1;
        				  }
        			  }
                      
            		  $("#redPacketList").html(Handlebars.compile(require("../../tpl/invest/redPacketList.tpl"))(json));  
                	  
		                  window.layer.open({
		                    type: 1,
		                    closeBtn: 1,
		                    title: "请选择可使用红包",
		                    area: ['600px', '500px'],
		                    border: [1, 1, '#ccc'],
		                    content: $('#choiceRedPacket'),
		                    success: function(layero){
	                          $redPacketMoney.next('input[type="radio"]').attr("checked",false);
	                          $choiceRedPacketMoney.text('0');
	                          var investMoneyVal = $money.val();
	                        
	                          //  获取隐藏域中的红包id
	                          dataChecked = ($("#redMoneyIdArry").val()).split(",");
		                	  
		                	  //  提示
		                    	//$(".redPacketTips").html("").fadeIn();
		                    	$(".redPacketTips").html("").stop().animate({'opacity':1}, 1000);
	                          //  第二次进入时，保持上一次选中的状态
	                           $.each(dataChecked,function(index,value){
	                        	   $("#choiceRedPacket"+value).attr("checked",true);
	                        	   $("#choiceRedPacket"+value).parent().addClass("checkInput");
	                           });  
	                          
	                          //  第二次进入时，保持上一次选中的值
	                           	currentCheckedMoney = parseInt($choiceRedPacket.find("em").text());		//	'弹框'当前选中红包 等于'页面'当前选中红包
	                           
	                           	$(".choiceRedPacketMoney").text($choiceRedPacket.find("em").text());	// 选中的红包总额
	//	                                $(".investMoney").text($money.val() - currentCheckedMoney);				//	实际支付总额
	                            $(".investMoney").text($money.val());				//	实际支付总额
	                            
	                        }
		                  }); 
		                  $redPacketConfirm.click(function(){
		                	  // 	点击确认时初始化，防止更改之后，数组累计
                              for(var i = dataChecked.length;i > 0 ;i--){
                          		 dataChecked.pop();
                          		}
                              
                              //	将选中红包的id追加到dataChecked数组
		                	  $('.choiceRedPacketBox ul li input[type="checkbox"]').each(function(){
		                		 if($(this).attr("checked")){
		                			 dataChecked.push($(this).val());	 
		                		 } 
		                	  });
		                	  
		                	  //	选中id数组赋值给页面隐藏域
		                	  $("#redMoneyIdArry").val(dataChecked);	
		                	  layer.closeAll();
		                	  //	页面显示
//                      		  $finalActualPayment.html("实际支付：<em>"+($money.val()-currentCheckedMoney)+"</em>元");
                      		  $finalActualPayment.html("实际支付：<em>"+($money.val())+"</em>元");
                              $choiceRedPacket.html("使用红包：<em>"+currentCheckedMoney+"</em>元&nbsp;&nbsp;&nbsp;");
		                  });
		                  FnCheckAll($('.checkAllRedPacket input[type="checkbox"]'));
		                  FnCheckSingle($('#redPacketList li[class!="nouse"]'));
		                 
                  }
        	  });
          }
       
      }else{
        $(".form_mony_tip").removeClass("hide").html('<b class="iconfont">&#xe60f;</b>请先输入投标金额！');
      } 
    });


    function FnCheckAll(obj){
    	obj.on("click",function(){
    		var flag = this.checked,
    		$checkAllRedPacket = $('.checkAllRedPacket input[type="checkbox"]'),			// 红包全选按钮节点
    		$choiceRedPacketBtn = $('.choiceRedPacketBox ul li'),
    		$choiceRedPacketInput = $('.choiceRedPacketBox ul li input[type="checkbox"]'),	// 单个红包选择框节点
    		$redPacketMoney = $('.redPacketMoney'),											// 单个红包金额节点,弹框显示

    		$redPacketConfirm =$("#redPacketConfirm"),										// 	点击确认,弹框显示
    		actualPayment = $("#money").val(),												//	实际支付总额
//    	    currentCheckedMoney = 0,  														// 	选中红包总额     数值型应先赋值为0，表明为数值    
    	    money = $money.val(),															//	输入投资金额
    	    redPackageRate = $("#redPackageRate").val(),
    	    canUseRedMoney =  parseInt(money*redPackageRate),								//	可用红包总额
    		mostAmount = $("#mostAccount").text(),//最大投标金额
    		waitAccount = $("#waitAccount").text();//剩余可投金额
    		
            $choiceRedPacketInput.each(function(){
                if(flag == true){	//	全选
                    $(this).parent().addClass('checkInput');
                    if($(this).attr('checked')){	
                    	// 当前已经被选中，则不需要任何操作	
                    }else{	
                    	// 此时被选中，应标识checked，且加上当前红包金额
                    	$(this).attr('checked',true); 

            			
                    	currentCheckedMoney = currentCheckedMoney + parseInt($(this).parent().parent().find(".redPacketMoney").text());
                    	
                    	if(currentCheckedMoney>canUseRedMoney){		//	当前选中红包  大于  可使用红包
                    		
                    		if($(this).parent().has('checkInput')){	//	若当前按钮为选中状态
                    			
                    			//	按钮状态切换
                    			$(this).attr('checked',false); 
                    			$(this).parent().removeClass('checkInput');
                    			

                    			
                    			//	金额计算
                    			currentCheckedMoney = currentCheckedMoney - parseInt($(this).parent().parent().find(".redPacketMoney").text());
                    			
                    			
                    			//  提示
                    			
                    			$(".redPacketTips").html("").fadeIn();
                        		$(".redPacketTips").html("红包使用总额不得超过<em>"+canUseRedMoney+"</em>元").delay(1000).fadeOut();
                    			//$(".redPacketTips").html("").stop().animate({'opacity':1}, 1000);
                        		//$(".redPacketTips").html("红包使用总额不得超过<em>"+canUseRedMoney+"</em>元").stop().animate({'opacity':0}, 1000);
                        		return false;	// 跳出each循环                    		
                    		}
                    	}
                    } 
                    
                }else if(flag == false){ 	//	全不选
                	
                	  //	按钮状态切换
                	  $(this).parent().removeClass('checkInput');
                      $(this).attr('checked',false);
                      
                      
                      //	金额计算
                      currentCheckedMoney = 0;    // 重新对选中红包赋值，且为0
                     
                      
                }
            });         
            // 计算实际支付总额
            if(money == 0){
            	actualPayment = 0;
            }else{
//            	actualPayment = money-currentCheckedMoney;	
            	actualPayment = money;	
            } 
            
            //	弹框显示
            $choiceRedPacketMoney.text(currentCheckedMoney); //	弹框选中红包总额
            $investMoney.text(actualPayment);  // 弹框实际支付总额

    	});
    }
    function FnCheckSingle(obj){
    	obj.on("click",function(){
    		money = $money.val();															//	输入投资金额
    	    redPackageRate = $("#redPackageRate").val();
    	    canUseRedMoney =  parseInt(money*redPackageRate);								//	可用红包总额
    	    mostAmount = $("#mostAccount").text();//最大投标金额
    		waitAccount = $("#waitAccount").text();//剩余可投金额
    		$('#checkAllRedPacket').attr('checked',false);
          	var $parent = $(this).find('label');
            if($parent.hasClass('checkInput')){		//  如果当前为选中状态,点击后切换为非选中状态
            		
            		//	状态切换
                    $parent.removeClass('checkInput');
                    $parent.children('input').attr('checked',false);

                    //	金额计算
                    currentCheckedMoney -= parseInt($(this).find(".redPacketMoney").text());
//                    actualPayment = parseInt($money.val())-currentCheckedMoney;	// 实际支付总额
                    actualPayment = parseInt($money.val());	// 实际支付总额
                    
            }else{	//  如果当前为非选中状态,点击后切换为选中状态
            	//控制只能单选
            	$(this).parent().find("label").removeClass("checkInput");
            	$(this).parent().find("label").children('input').attr('checked',false);
            	currentCheckedMoney = 0;
            	
                    currentCheckedMoney += parseInt($(this).find(".redPacketMoney").text());
                    if(currentCheckedMoney>canUseRedMoney){		// 当前选中红包总额  大于  可用红包总额
                    	
                    	//	金额计算
                    	currentCheckedMoney -= parseInt($(this).find(".redPacketMoney").text());
//                    	actualPayment = parseInt($money.val())-currentCheckedMoney;	// 实际支付总额                   	
                    	actualPayment = parseInt($money.val());	// 实际支付总额                   	
            			
                    	//	提示
                    	$(".redPacketTips").html("").fadeIn();
                    	$(".redPacketTips").html("红包使用总额不得超过<em>"+canUseRedMoney+"</em>元").delay(1000).fadeOut();
                    	
                    	//$(".redPacketTips").html("").stop().delay(500).animate({'opacity':1}, 1000);
                		//$(".redPacketTips").html("红包使用总额不得超过<em>"+canUseRedMoney+"</em>元").stop().delay(500).animate({'opacity':0}, 1000);
                    	
                    }else{	// 当前选中红包总额  小于  可用红包总额                 
                    	
                    	$parent.addClass('checkInput');
    	                $parent.children('input').attr('checked',true);
//    	                actualPayment = parseInt($money.val())-currentCheckedMoney;	// 实际支付总额
    	                actualPayment = parseInt($money.val());	// 实际支付总额
      
                    }
            }
                
            //   弹框显示
            $choiceRedPacketMoney.text(currentCheckedMoney); //	弹框选中红包总额
            $investMoney.text(actualPayment);  // 弹框实际支付总额

    	});
    }

});